/*
Date:20210413 16:45pm
key:一个栈，一个match函数解决
*/
class Solution {
public:
    bool match(char&a,char&b)
    {
        switch(a)
        {
            case '(':return b==')'?1:0;
            case '[':return b==']'?1:0;
            case '{':return b=='}'?1:0;
        }
        return 0;
    }
    bool isValid(string s) {
        stack<char>S;
        for(char i:s)
        {
            if(!S.empty()&&match(S.top(),i))
            {
                    S.pop();
            }
            else
            {
                S.push(i);
            }
        }
        return S.size()==0?true:false;
    }
};